package day4;

import java.util.Arrays;

//冒泡排序
public class Demo7 {
    public static void main(String[] args) {
        int nums[]={3,31,1,6,5,2,4,601};
        //外层循环 跟长度有关系 -1
        System.out.println("排序前："+ Arrays.toString(nums));
        for (int i=0;i< nums.length-1;i++){
            //内层循环：控制每轮比较的次数
            //nums.length-i-1 因为每轮结束后，最后一个不用再比较了
            for(int j=0;j<nums.length-1-i;j++){
                // >为升序  <为降序
                if (nums[j]<nums[j+1]){
                    //nums[j]  <==>  nums[j+1]
                    nums[j]=nums[j]^nums[j+1];
                    nums[j+1]=nums[j]^nums[j+1];
                    nums[j]=nums[j]^nums[j+1];
                }
            }
        }
        System.out.print("排序后"+Arrays.toString(nums));
    }
    //实现两值互换
    public static void test(){
        int a=10;
        int b=20;
        // 1.借助于临时变量
        int temp=a;
        a=b;
        b=temp;

        // 2.加减法
        a=a+b; //30
        b=a-b; //10
        a=a=b; //20

        // 3.乘除法
        a=a*b;
        b=a/b;
        a=a/b;

        // 4.异或算法---
        // 异或：将元素转换为二进制，进行异或运算，相同为0，不同为1
        // 比如：3^2=1

        a=a^b;
        b=a^a;
        a=a^b;
    }
}
